package com.hjs.mr.merge_and_sort;

import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.mapreduce.Reducer;

import java.io.IOException;

/**
 * SortReducer继承了Reducer，泛型是根据Mapper传出的类型定义的，输出可以自拟，此处使用了SortBean和NullWritable来进行输出
 */
public class SortReducer extends Reducer<SortBean, NullWritable, SortBean, NullWritable> {

    private int index = 0;

    @Override
    protected void reduce(SortBean key, Iterable<NullWritable> values, Context context) throws IOException, InterruptedException {
        for (NullWritable value : values) {//遍历每个需要输出的内容，由于使用了分区器，所以所有的数据都会进入到这个Reducer中
            index++;
            key.setSort(index);//为sort字段赋值，之后输出SortBean即可
            context.write(key, value);
        }
    }
}
